.\"	$NetBSD: form_page.3,v 1.10 2010/03/22 21:58:31 joerg Exp $
.\"
.\" Copyright (c) 1999
.\"	Brett Lymn - blymn@baea.com.au, brett_lymn@yahoo.com.au
.\"
.\" This code is donated to The NetBSD Foundation by the author.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. The name of the Author may not be used to endorse or promote
.\"    products derived from this software without specific prior written
.\"    permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd January 1, 2001
.Dt FORM_PAGE 3
.Os
.Sh NAME
.Nm current_field ,
.Nm field_index ,
.Nm form_page ,
.Nm form_max_page ,
.Nm set_current_field ,
.Nm set_form_page
.Nd form library
.Sh LIBRARY
.Lb libform
.Sh SYNOPSIS
.In form.h
.Ft FIELD *
.Fn current_field "FORM *form"
.Ft int
.Fn field_index "FIELD *field"
.Ft int
.Fn form_page "FORM *form"
.Ft int
.Fn form_max_page "FORM *form"
.Ft int
.Fn set_current_field "FORM *form" "FIELD *field"
.Ft int
.Fn set_form_page "FORM *form" "int page"
.Sh DESCRIPTION
The
.Fn current_field
returns a pointer to the structure for the field that is currently
active on the page.
If there is an error,
.Fn current_field
will return
.Dv NULL .
Calling
.Fn field_index
will return the index of the given field in the form field array.
The
current page the form is on can be determined by using
.Fn form_page ,
the current page of a form can be programmatically set by calling
.Fn set_form_page .
The maximum page number for a form can be found by
calling the function
.Fn form_max_page
but note that this function is a
.Nx
extension and must not be used in portable forms library programs.
The current field on the form may be set by calling
.Fn set_current_field
which will set the current field to the one given.
.Sh RETURN VALUES
Functions returning pointers will return
.Dv NULL
if an error is detected.
The functions that return an int will return one of the following
error values:
.Pp
.Bl -tag -width E_UNKNOWN_COMMAND -compact
.It Er E_OK
The function was successful.
.It Er E_BAD_ARGUMENT
The function was passed a bad argument.
.It Er E_NOT_CONNECTED
The given field is not associated with a form.
.It Er E_BAD_STATE
The function was called from within an init or term function.
.It Er E_INVALID_FIELD
The field given is not part of the given form.
.El
.Sh SEE ALSO
.Xr curses 3 ,
.Xr forms 3
.Sh NOTES
The header
.In form.h
automatically includes both
.In curses.h
and
.In eti.h .
.Pp
The
.Nm form_max_page
is a
.Nx
extension and should not be used in portable applications.
